Information processing apparatus and method for controlling the same

ABSTRACT

The present invention provides an information processing apparatus configured to recognize a touch operation. The information processing apparatus includes an obtaining unit configured to obtain a plurality of touch positions touched on a display screen; a specifying unit configured to specify an object displayed at a position corresponding to each of the touch positions obtained by the obtaining unit on the display screen when at least one of the touch positions obtained by the obtaining unit is included in a predetermined range on the display screen; and a determination unit configured to determine, among the touch positions obtained by the obtaining unit, a touch position included in the predetermined range as an invalid input for a touch operation to the information processing apparatus when the object specified by the specifying unit is not a plurality of objects associated with each other.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a technique for recognizing a touchoperation.

2. Description of the Related Art

A touch input device has spread in these years. The touch input deviceimports the X and Y coordinate values of a touched position as inputvalues in response to a touch on the screen by the user's finger or astylus so as to perform various processes based on the input values. Atechnique for a so-called multi-touch in which the user operates thedevice by touching a plurality of points on the screen has beendeveloping. The user can perform various operations such as enlargement,reduction, and scroll, for example, by touching two points with theuser's right hand index figure and thumb in the multi-touch operation.

Designing as much of the whole device as possible on the screen is oftenrequired for such touch input devices. However, the user may happen tounconsciously touch the screen, for example, in order to hold the touchinput device with the use's hand. When, as described above, the usermistakenly touches the screen on the touch input device in which amulti-touch operation can be performed, more touch inputs are recognizedthan the user intended. This can cause malfunction.

Japanese Patent Application Laid-Open No. 2009-217814 discloses that atouch on the peripheral edge of the touch panel is selectively ignored.In that case, when a touch on the edge moves a distance exceeding apredetermined distance or moves at a speed exceeding a predeterminedspeed, or when a touch started in the central region of the touch panelenters the edge, the touch on the edge is recognized as a part of agesture.

However, various displays including a user interface are displayed evenon the edge of a touch panel in many touch input devices in order toefficiently use the display region of the touch panel. A methoddisclosed in Japanese Patent Application Laid-Open No. 2009-217814 inwhich all touch points without moving are determined as invalid on theedge limits the contents allowed to be displayed on the edge.

SUMMARY OF THE INVENTION

An objective of the present invention is to improve the operability ofthe user interface displayed in a predetermined range when a touch pointin the predetermined range on the touch panel display is selectivelydetermined as an invalid input.

The present invention provides an information processing apparatusconfigured to recognize a touch operation. The information processingapparatus includes an obtaining unit configured to obtain a plurality oftouch positions touched on a display screen; a specifying unitconfigured to specify an object displayed at a position corresponding toeach of the touch positions obtained by the obtaining unit on thedisplay screen when at least one of the touch positions obtained by theobtaining unit is included in a predetermined range on the displayscreen; and a determination unit configured to determine, among thetouch positions obtained by the obtaining unit, a touch positionincluded in the predetermined range as an invalid input for a touchoperation to the information processing apparatus when the objectspecified by the specifying unit is not a plurality of objectsassociated with each other. Further features of the present inventionwill become apparent from the following description of exemplaryembodiments (with reference to the attached drawings).

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A to 1C are diagrams of an exemplary appearance and configurationof an information processing apparatus;

FIG. 2 is a flowchart for describing an exemplary flow of a process forrecognizing a touch input by the user;

FIG. 3 is a flowchart for describing an exemplary flow of a process forobtaining a touch point;

FIG. 4 is a flowchart for describing an exemplary flow of adetermination process based on the information associating objects;

FIGS. 5A to 5C are diagrams of an exemplary display state of an objectand exemplary association information;

FIGS. 6A to 6D are diagrams of an exemplary operation on the informationprocessing apparatus;

FIGS. 7A to 7C are diagrams of an exemplary operation on the informationprocessing apparatus;

FIGS. 8A to 8E are diagrams of exemplary stored information about touchpoints;

FIG. 9 is a flowchart for describing an exemplary flow of a process forrecognizing a touch input by the user;

FIG. 10 is a flowchart for describing an exemplary flow of a process forobtaining a touch point;

FIG. 11 is a flowchart for describing an exemplary flow of adetermination process based on the information associating objects;

FIGS. 12A to 12E are diagrams of an exemplary operation on theinformation processing apparatus;

FIGS. 13A to 13D are diagrams of an exemplary operation on theinformation processing apparatus; and

FIGS. 14A to 14D are diagrams of exemplary stored information abouttouch points.

DESCRIPTION OF THE EMBODIMENTS

Hereinafter, exemplary embodiments of the present invention will bedescribed with reference to the accompanying drawings. Note that theexemplary embodiments to be described below are examples in which thepresent invention is specifically implemented and the present inventionis not limited to the exemplary embodiments.

First Embodiment

FIGS. 1A to 1C are diagrams of an exemplary appearance and hardwareconfiguration of an information processing apparatus applicable to thepresent exemplary embodiment. FIG. 1A is a diagram of a mobile terminalthat is an example of an information processing apparatus 100 whenviewed from the front side and the lateral side of the screen. A housing101 is an outer periphery of an input region 102 and made of, forexample, synthetic resin or metal in FIG. 1A. The input region 102includes, for example, a touch sensor and is a target region to betouched by the user so as to receive an input to the informationprocessing apparatus 100. The input region 102 includes a touch paneldisplay in which a touch sensor is installed on a display that is adisplay portion in the present exemplary embodiment. A display screen ofthe touch panel display is an interface configured to display an imagefor operating the information processing apparatus 100 or a deviceconnected to the information processing apparatus 100. When carrying theinformation processing apparatus 100, the user usually grasps a part ofthe housing 101 with the user's hand. At that time, the user happens totouch a portion near an outer edge of the input region 102 with theuser's finger. In the present exemplary embodiment, a range 103 from theouter edge of the inside of the input region 102 to a predetermineddistance inwardly away from the outer edge is set as a predeterminedrange where it is expected that the user happens to mistakenly touch therange. Note that the input region 102 on a touch panel display 115 inthe information processing apparatus 100 described herein has aresolution of 480 [dot]×640 [dot] and can manage the positionalinformation as a plane of coordinates that has the origin on the upperleft of the drawing.

Hereinafter, the mobile terminal illustrated in FIG. 1A will bedescribed as the information processing apparatus 100 in the presentexemplary embodiment.

Hereinafter, the position touched by the user in the input region 102 isspecified as a point and is referred to as a touch point in the presentexemplary embodiment. The positional information of the touch point ishandled as the information of the coordinates on the assumption that theinput region 102 is a plane of coordinates having the origin on theupper left of the drawing. However, the position touched by the user canbe obtained in a method except the method in which the point isspecified. For example, both of the information corresponding to thearea touched by a finger and the information indicating the point thatis the median point (or the center) of the touched region can beobtained.

It is considered in the present exemplary embodiment that it is highlypossible that the touch point obtained in the predetermined range 103set on the outer edge of the input region 102 among one or more touchpoints touched by the user in the input region 102 has been touchedbecause the user carries the apparatus with the user's hand. However,when the obtained touch points contact one or more associated objects,it is deemed that the user has touched the input region 102 in order tooperate the object even if the touch points have been obtained in thepredetermined range 103. Thus, among the touch points obtained in thepredetermined range 103, the touch point that does not contact an objectassociated with the object that the other touch point contacts isdetermined as an invalid input.

FIG. 1B is an exemplary block diagram of a hardware configuration of theinformation processing apparatus 100 applicable to the present exemplaryembodiment. In FIG. 1B, a CPU 111 is a central processing unit, ROM 112is read only memory, and an HDD 113 is a hard disk drive. The CPU 111reads and executes a control program stored in the ROM 112 or the HDD113 so as to control each device in the present exemplary embodiment.The control program is for causing the information processing apparatus100 to perform the operations to be described in the present exemplaryembodiment. The ROM 112 stores such control programs and various typesof data used by the programs. RAM 114 is random access memory andincludes, for example, the work region of the program of the CPU 111, adata save region at an error handling, and a load region for the controlprograms. The HDD 113 stores the control programs and various types ofdata. The touch panel display 115 is a device that combines a touchsensor or the like for importing the information about the useroperation in the input region 102 and a display screen for outputting adisplay. The touch panel display 115 integrated in the informationprocessing apparatus 100 is used as the touch panel working as an inputdevice and the display device working as an output device in the presentexemplary embodiment. However, an external device connected to theinformation processing apparatus 100 can also be used. A capacitancetype touch panel display is used as the touch panel display 115 workingas an input device in the present exemplary embodiment. The touch paneldisplay 115 can operate in two modes, a normal mode and a sensitive modein the present exemplary embodiment. In the normal mode, every timeafter the touch sensor provided on an operation panel and configured todetect a touch by the user scans the surface of the touch panel displayand detects a point touched by the user or a point from which a touchhas been released one by one, the points are sequentially notified astouch events to the information processing apparatus 100. On the otherhand, in the sensitive mode, the sensitivity of the touch sensorincreases. Thus, the finger close to the surface of the touch paneldisplay 115 is detected as a touch point even though the finger has nottouched the surface. However, the touch panel is not limited to thecapacitance type. A touch panel configured to detect a touch or avicinity of the user to the operation surface, for example, using anelectromagnetic induction or optical sensor device can be used. Anoutput I/F 116 is for outputting various types of information through anetwork or the like to an output device except for the display. A bus117 transfers an address signal indicating a component to be controlledby the CPU 111, a control signal for controlling each component, anddata transferred among the component devices. Note that the controlprogram can previously be stored in the ROM 112 or the HDD 113, or canbe received from an external device through the network and stored inthe ROM 112 or the HDD 113 as necessary.

The CPU 111 performs each of the functions of the information processingapparatus 100 to be described below or each of the operations describedin the flowcharts to be described below by executing the program storedin, the ROM 112, the HDD 113, or the like.

FIG. 1C is an exemplary block diagram of the software configuration ofthe information processing apparatus 100.

An obtaining unit 121 includes the CPU, the ROM, and the RAM(hereinafter, referred to as the CPU and the like) so as to obtain theinformation about a touch point touched by the user based on a signalnotified from the touch sensor on the touch panel display 115. Theinformation about a touch point includes, for example, the coordinateinformation indicating the position of the touch point in the inputregion 102, and the information indicating the obtaining time when thetouch point has been obtained at the position, the order in which thetouched position has been obtained, and the like. The obtaining unit 121stores the obtained information in a first storage unit 123 included inthe RAM 114.

A determination unit 122 includes the CPU and the like so as todetermine whether each touch point is a valid input or an invalid inputto the information processing apparatus 100 when it has been determinedthat there is a plurality of touch points obtained by the obtaining unit121 based on the information stored in the first storage unit 123. Thepredetermined range 103 is set in the input region 102 in the presentexemplary embodiment. The predetermined range 103 corresponds to thepart where the user happens to touch when the user holds the informationprocessing apparatus 100, for example, a range from the outer edge ofthe input region to a predetermined distance away from the outer edge.The determination unit 122 determines a touch point as a possibleinvalid input when the position of the touch point is included in theset predetermined range 103. The determination unit 122 determines thetouch point as a valid input when an object associated with the objectdisplayed on the other touch point is displayed at the position of eachof the touch points that have been determined as possibly invalidinputs. The determination unit 122 determines the touch point as aninvalid input when the object associated with the object displayed onthe other touch point is not displayed at the position of each of thetouch points that have been determined as possibly invalid inputs. Theinformation about the object or the content data included in thedisplayed image displayed on the touch panel display 115 and used forthe determination process in the determination unit 122 is stored in asecond storage unit 126 in the present exemplary embodiment.

A recognition unit 124 includes the CPU and the like to receive thedetermination result from the determination unit 122 and obtain theinformation about a valid touch point from the information stored in thefirst storage unit 123 so as to recognize the information as the inputinformation included in the touch operation.

A display control unit 125 is configured to generate a displayed imagereflecting the result according to the input based on the informationstored in the second storage unit 126 in order to control the display tooutput the image to the touch panel display 115 working as the displayunit. For example, when the object shows the user interface designatedby the touch point determined as valid, the display control unit 125generates a displayed image reflecting the operation according to theobject and outputs the image.

The second storage unit 126 stores image data necessary for the displaycontrol unit 125 to generate a displayed image, and the attributeinformation. The second storage unit 126 stores, for example, the imageinformation and the information indicating the display position about aplurality of objects that are the components of the graphical userinterfaces of various applications performed in the informationprocessing apparatus 100 or the operation system. Further, the secondstorage unit 126 sometimes stores the object that forms a graphical userinterface screen with associating the object to the other object. Forexample, when there is a user interface that operates a function bycooperating a plurality of objects, the association informationassociating the objects to each other is added to the objects as it isdetermined that the objects are associated with each other. Thedetermination unit 122 determines based on the association informationadded to the object displayed at the position of each of the touchpoints whether the object displayed at the touch point included in thepredetermined range 103 is associated with the object displayed at theother touch point. When determining that the object displayed at thetouch point included in the predetermined range 103 is associated withthe object displayed at the other touch point, the determination unit122 determines the touch point included in the predetermined range 103as valid. When determining that the object displayed at the touch pointincluded in the predetermined range 103 is not associated with theobject displayed at the other touch point, the determination unit 122determines the touch point included in the predetermined range 103 asinvalid. Note that the RAM 114 reads the information stored in the HDD113, an external storage device, or the ROM 112. This forms the secondstorage unit 126. Note that the association information indicates onlythe link between an object and another object in the present exemplaryembodiment. When the same object is displayed at a plurality of touchpoints, it is determined that an object that is not associated withanother is touched.

The CPU 111 develops the program stored in the ROM 112 to the RAM 114 toexecute the program in order to implement each function of thefunctional units in the present exemplary embodiment. Note that aninformation processing apparatus that implements the functional unitswith hardware can similarly implement the present invention.

Next, the flow of a process for recognizing a touch input by the user inthe present exemplary embodiment will be described according to theflowchart in FIG. 2. Note that turning on the information processingapparatus 100 starts the following process in the present exemplaryembodiment. However, the present invention is not limited to the presentexemplary embodiment. Releasing the lock on the apparatus, starting aspecific application, or completing drawing a displayed image can alsostart the process for recognizing a touch input.

First, the obtaining unit 121 obtains the information about the touchpoint to the input region 102 in step S201. At that time, the touchsensor on the touch panel display 115 detects the fact that the user hastouched the input region 102 with the user's finger to operate theapparatus. Then, the obtaining unit 121 obtains the information aboutthe touched position based on the information obtained from the touchsensor.

Herein, FIG. 3 is a flowchart for describing the flow of a process forobtaining a touch point in step S201.

First, the obtaining unit 121 determines in step S301 whether the touchevent notified from the touch sensor is a “TOUCH”. The touch sensor usedin the present exemplary embodiment notifies a touch event whenobtaining the fact that the input region 102 is touched or when theobtained touch is released. In that case, when obtaining the fact thatthe input region 102 is touched, the touch sensor notifies a “TOUCH” asthe touch event to the obtaining unit 121. When the obtained touch isreleased, the touch sensor notifies a “RELEASE” as the touch event tothe obtaining unit 121. When it is determined that the notified touchevent is a “TOUCH” (YES in step S301), the process goes to step S302.When the notified touch event is not a “TOUCH”, or, in other words, is a“RELEASE” (NO in step S301), the process goes to step S307.

The obtaining unit 121 determines in step S302 whether a touch pointhaving the same ID as the touch point of which touch event has beennotified as the “TOUCH” has already been obtained. The obtaining unit121 determines whether the same ID is included in the information storedin the first storage unit 123 with reference to the information. The IDof a touch point is identification data for identifying the touch pointthat the obtaining unit 121 has obtained. In the present exemplaryembodiment, numbers 1, 2, . . . are assigned as the IDs in order ofobtaining based on how many points have been touched before the touchpoint is touched in the input region 102. When it is determined that thetouch point having the same ID has not been obtained (NO in step S302),the process goes to step S303. On the other hand, when it is determinedthat the touch point having the same ID has already been obtained (YESin step S302), the process goes to step S304.

The obtaining unit 121 newly adds the information about the ID,coordinates, and obtaining time of the touch point of which touch eventhas been obtained as a “TOUCH” to the information stored in the firststorage unit 123 in step S303. Note that, as illustrated in FIG. 1A, theinformation about the position is represented by the coordinates x and ybased on the plane of coordinates having the origin on the upper left ofthe input region 102 in the present exemplary embodiment.

The obtaining unit 121 newly adds the information about the ID,coordinates, and obtaining time of the touch point of which touch eventhas been obtained as a “TOUCH” to the information stored in the firststorage unit 123 in step S303.

The obtaining unit 121 updates the information about the coordinates andobtaining time of the touch point having the same ID as the touch pointof which touch event has been obtained as a “TOUCH” in the informationstored in the first storage unit 123 in step S304.

Next, the obtaining unit 121 specifies the ID of the object displayed atthe position of the obtained touch point with reference to theinformation about the object stored in the second storage unit 126 inorder to store the ID in the first storage unit 123 in step S305. Then,the process returns to the process for recognizing a touch input (FIG.2).

On the other hand, when the obtaining unit 121 determines NO in stepS301, or, in other words, when the touch sensor notifies a touch eventexcept for a “TOUCH”, it means that a “RELEASE” is notified in thepresent exemplary embodiment. Thus, in step S306, the obtaining unit 121deletes the position and obtaining time associated with the IDcorresponding to the touch point of which touch event has been obtainedas “RELEASE” and the ID information of the displayed object togetherwith the ID of the touch point from the information stored in the firststorage unit 123. Then, the process returns to the process forrecognizing a touch input (FIG. 2).

Once the process has returned to the process for recognizing a touchinput by the user, the determination unit 122 subsequently determines instep S202 whether the obtaining unit 121 has obtained a plurality oftouch points. At that time, the determination unit 122 finds the numberof touch points from the number of the stored IDs with reference to theinformation stored in the first storage unit 123 in order to determinewhether a plurality of touch points has been obtained. When it isdetermined in step S202 that a plurality of touch points has beenobtained (YES in step S202), the process goes to step S203. When it isdetermined that a plurality of touch points has not been obtained (NO instep S202), the process goes to step S208.

The determination unit 122 determines in step S203 whether the positionof at least one of the obtained touch points is included in thepredetermined range 103 preset in the input region 102. Thedetermination unit 122 in the present exemplary embodiment determineswhether at least a touch point is included in the predetermined range103 with reference to the information stored in the first storage unit123 and based on the coordinate values of the obtained touch point and apreset condition expression. When it is determined that the position ofat least one of the obtained touch points is included in thepredetermined range (YES in step S203), the process goes to step S204.On the other hand, when it is determined that all the positions of theobtained touch points are not included in the predetermined range (NO instep S203), the process goes to step S209.

The determination unit 122 determines the touch point included in thepredetermined range 103 as a possibly invalid input in step S204 inorder to store the information about a value “TRUE” of a flag on thepossibly invalid input in the first storage unit 123 with associatingthe information to the ID of the specified touch point.

In step S205, the determination unit 122 determines the obtained touchpoint as a valid input or as an invalid input based on the objectdisplayed in the input region 102. It is determined in the presentexemplary embodiment based on the information about the object stored inthe second storage unit 126 whether the object displayed at the positionof the touch point included in the predetermined range 103 is associatedwith the object displayed at the position of the other touch point.

Herein, FIG. 4 is a flowchart for describing the flow of a determinationprocess based on the displayed object in step S205.

First, in step S401, the determination unit 122 selects a touch pointthat has been recognized to be included in the predetermined range 103in step S203. In the present exemplary embodiment, the determinationunit 122 obtains an ID of the touch point associated with the flag onthe possibly invalid touch point that is “TRUE” with reference to theinformation stored in the first storage unit 123. In the presentexemplary embodiment, the determination unit 122 finds touch pointsassociated with the flag on the possibly invalid touch point that is“TRUE” in ascending order of the ID number and selects the touch pointsone by one.

Next, in step S402, the determination unit 122 specifies the objectdisplayed at the position of the selected touch point. The determinationunit 122 in the present exemplary embodiment obtains the ID of thedisplayed object from the information associated with the ID of thetouch point obtained in step S401 with reference to the informationstored in the first storage unit 123.

The determination unit 122 determines in step S403 whether the specifiedobject is associated with the object displayed at the position of theother touch point. In the present exemplary embodiment, thedetermination unit 122 determines, with reference to the informationstored in the second storage unit 126 and associated with the ID of thedisplayed object that the determination unit 122 has obtained in stepS402, whether there is an object associated with the displayed objecthaving the ID. When there is an associated object, the determinationunit 122 specifies the ID of the associated object and then determineswhether there is a touch point associated with the displayed objecthaving the ID among the touch points stored in the first storage unit123. When there is a touch point associated with the displayed objecthaving the ID, it is determined that the specified object is associatedwith the object displayed at the position of the other touch point. Whenit is determined that the specified object is associated with the objectdisplayed at the position of the other touch point (YES in step S403),the process goes to step S405. When it is determined that the specifiedobject is not associated with the object displayed at the position ofthe other touch point (NO in step S403), the process goes to step S404.

In step S404, the determination unit 122 determines the touch pointselected in step S401 as an invalid input and maintains the value of theflag on the possibly invalid touch point as “TRUE”. Then, the processgoes to step S406.

On the other hand, the determination unit 122 determines the touch pointselected in step S401 as a valid input in step S405. In other words, thetouch point is eliminated from the touch points determined as possiblyinvalid inputs. At that time, the determination unit 122 updates, as“FALSE”, the value of the flag on the possibly invalid touch pointassociated with the touch point having the ID specified in step S401 inthe information stored in the first storage unit 123.

The determination unit 122 determines in step S406 whether all the touchpoints included in the predetermined range have been processed. In thepresent exemplary embodiment, at the completion of the search of theinformation about the touch point of which ID has the largest numberamong the touch points stored in the first storage unit 123, it isdetermined that all the touch points included in the predetermined range103 have been processed. When it is determined that all the touch pointsincluded in the predetermined range have not been processed (NO in stepS406), the process goes back to step S401 to select the touch point ofwhich ID has the second largest number from among the touch pointsassociated with the flag on the possibly invalid touch point that is“TRUE”. When it is determined that all the touch points included in thepredetermined range have been processed (YES in step S406), thedetermination process is terminated. Then, the process goes back to theflowchart in FIG. 2.

Once the process has returned to the process for recognizing a touchinput by the user, the recognition unit 124 subsequently in step S206recognizes the touch point that has not been determined as an invalidinput as the result from the determination process in the determinationunit 122. The recognition unit 124 in the present exemplary embodimentrecognizes the information stored in the first storage unit 123 as theinput of the coordinates of all the touch points associated with theflag on the possibly invalid touch point that is not “TRUE” withreference to the information in order to perform an appropriate process.

Then, in step S207, the display control unit 125 reflects the resultfrom the input recognized with the recognition unit 124 in the output.In the present exemplary embodiment, the display control unit 125reflects the result that is the operation indicated by the recognizedinput in the displayed image displayed on the touch panel display 115and outputs the result.

On the other hand, the determination unit 122 determines in step S208whether an obtained touch point is the touch point already determined asinvalid by the determination unit 122. When an obtained touch point isthe touch point remaining after the other touch points have not beenobtained (have been released) and thus the obtained touch points havedecreased to one, the touch point has already been determined by thedetermination unit 122. In that case, once a touch point has beendetermined as an invalid input, it is preferable that the touch pointcontinues to be determined as an invalid input. Thus, the determinationin step S207 is performed. When an obtained touch point has already beendetermined as invalid by the determination unit 122, it is highlypossible that the touch point is touched by the finger touching theinput region 102 in order to carry the information processing apparatus100. Thus, the touch point is continuously determined as invalid in thepresent exemplary embodiment. When it is determined that the obtainedtouch point is the touch point that has already been determined asinvalid by the determination unit 122 (YES in step S208), the processgoes to step S206. On the other hand, when it is determined that theobtained touch point is not the touch point that has already beendetermined as invalid by the determination unit 122 (NO in step S208),the process goes to step S209.

In step S209, the determination unit 122 determines all the obtainedtouch points as valid inputs and then notifies the informationindicating the determination result to the recognition unit 124.

Note that, although the touch panel that notifies a “TOUCH” as the touchevent when the touch sensor has obtained a touch, and notifies a“RELEASE” as the touch event when the obtained touch has been releasedis used in the present exemplary embodiment, the present invention isnot limited to the embodiment. For example, a “TOUCH_DOWN” can benotified as the touch event when the input region 102 has newly beentouched, a “MOVE” can be notified as the touch event when the motion ofthe touch point having the obtained ID has been obtained, or a“TOUCH_UP” can be notified as the touch event when the touch has beenreleased. In such a case, when a “TOUCH_DOWN” is notified, theinformation to be stored in the first storage unit 123 is newly addedand associated with the ID. When a “MOVE” is notified, the informationassociated with the same ID is updated. When a “TOUCH_UP” is notified,the information associated with the same ID is deleted.

As described above, the information processing apparatus 100 manages theinformation by identifying a plurality of touch points obtained on thetouch panel working as an input device using the IDs. Thus, theinformation processing apparatus 100 can obtain each motion of the touchpoints and can recognize a multi-touch operation configured on the touchpoints.

Hereinafter, an exemplary operation in which the user operates theinformation processing apparatus 100 according to the first exemplaryembodiment will specifically be described with reference to FIGS. 5A to8E.

First, FIGS. 5A to 5C are examples of the display state of an object andthe association information. FIG. 5A illustrates an exemplary state ofthe user interface displayed when the information processing apparatus100 is used as a camera. In that case, a captured image 500 taken withan imaging unit (not illustrated in the drawings), an object 501, anobject 502, and an object 503 are displayed in the input region 102. Theobjects work as the interfaces of the information processing apparatus100 and play roles as icons for calling the adjustment function of thezoom level of the camera, the adjustment function of the ISO speed, andthe adjustment function of the shutter speed (hereinafter, merelyreferred to as “shutter speed”). FIG. 5B illustrates that the userindicates the object 501 with a touch point 504 and thus an object 505is newly displayed. A function as a zoom adjustment bar is allotted tothe object 505 because the touch point 504 has indicated the icon forcalling the zoom level adjustment function (hereinafter, merely referredto as “zoom”). Similarly, a function as an ISO adjustment bar isallotted to the object 505 when the object 502 corresponding to theadjustment function of the ISO speed (hereinafter, merely referred to as“ISO”) is indicated. A function as a shutter speed adjustment bar isallotted to the object 505 when the object 503 corresponding to theadjustment function of the shutter speed (hereinafter, merely referredto as “shutter speed”) is indicated.

FIG. 5C is a table showing an example of the information stored in thesecond storage unit 126. IDs for identifying the displayed objects andthe association information for associating the object to the otherobject are stored in the table. For example, as illustrated in FIG. 5B,indicating the object 501 corresponding to the “zoom” displays theobject 505 corresponding to the zoom adjustment bar. Thus, in FIG. 5C,the object corresponding to the “zoom” and having an ID 1 and the objectcorresponding to the zoom adjustment bar and having an ID 1-1 stores theIDs of each other as the association information. The “ISO” and the“shutter speed” are similar.

Next, FIGS. 6A to 6D illustrate an exemplary operation of theinformation processing apparatus 100 described in FIGS. 5A to 5C. First,as illustrated in FIG. 6A, the information processing apparatus 100 isrotated 90 degrees counterclockwise from the state in FIG. 1A. Thus, theinput region 102 on the touch panel display 115 can manage thepositional information as a plane of coordinates that has a resolutionof 480 [dot]×640 [dot] and has the origin on the lower left of thedrawing. In the examples in FIGS. 6A to 6D, a range having 20 [dot] inwidth is previously set as the predetermined range 103 from the outeredge of the input region 102. FIGS. 8A to 8C are tables showing examplesof the information that has been obtained by the obtaining unit 121 andhas been stored in the first storage unit 123 in the states in FIGS. 6Bto 6D.

FIG. 6B illustrates that the user has touched the object 501 displayedin the input region 102 and thus the touch point 504 has been obtained(step S201). As illustrated in FIG. 8A, the obtaining unit 121 obtainsthe positional coordinates that are the x-coordinate (380 [dot]) and they-coordinate (10 [dot]) and the ID 1 indicating the object 501 displayedat the position with respect to the touch point having the ID 1indicating that the touch point has been touched first. At that time, aplurality of touch points has not been obtained (NO in step S202), andthe obtained touch point has not already been determined as invalid (NOin step S208). Thus, the operation with the touch point 504 isrecognized (step S206). Thus, as illustrated in FIG. 6C, the object 505that is the zoom adjustment bar is displayed as the output of theoperation result (step S207).

Next, FIG. 6C illustrates that the user has newly touched the object 505and thus a touch point 601 has been obtained (step S201). As illustratedin FIG. 8B, the obtaining unit 121 obtains the positional coordinatesthat are the x-coordinate (80 [dot]) and the y-coordinate (620 [dot])and the ID 1-1 indicating the object 505 displayed at the position withrespect to the touch point having an ID 2 indicating that the touchpoint has been touched secondarily. At that time, a plurality of touchpoints has been obtained (YES in step S202). Thus, the determinationunit 122 determines whether the position of at least one of the touchpoints is included in the predetermined range 103. In the example, bothof the touch point having the ID 1 and the touch point having the ID 2are included in the range having 20 [dot] in width from the outer edgein a Y-axis direction (YES in step S203). Thus, the determination unit122 obtains the two touch points (ID=1 and ID=2) included in thepredetermined range 103 (step S204). Then, the determination unit 122first selects the touch point having the ID 1 (step S401) and determineswhether there is an object associated with the object 501 having the ID1 and displayed at the position of the selected touch point (step S403).In the example, the determination unit 122 determines based on the tablein FIG. 5C that there is the object 505 having the ID 1-1. It isdetermined based on the table stored in the first storage unit 123 inFIG. 8B that the touch point having the ID 2 is associated with theobject having the ID 1-1. Thus, the touch point having the ID 1 isdetermined as a valid input and the flag on the possibly invalid touchpoint becomes “FALSE” because the specified object is associated withthe object displayed at the position of the other touch point (YES instep S403). Similarly, the touch point having the ID 2 is alsodetermined as a valid input and the flag on the possibly invalid touchpoint becomes “FALSE” (step S405). Note that, when the displayed objectassociated with a touch point included in the predetermined range 103has been associated as the displayed object of the other touch pointincluded in the predetermined range 103, the touch points can constantlybe determined as valid inputs.

FIG. 6D illustrates the information processing apparatus 100 in whichthe operation for adjusting the zoom level is continuously input becausethe two touch points are determined as valid inputs. In that case,moving the touch point 601 having the ID 2 in the positive direction ofthe positive X-axis zooms in the captured image (step S207). FIG. 8Cillustrates an example of the information stored in the first storageunit 123 at that time. Both of two touch points associated with the flagon the possibly invalid touch point that is “FALSE” are determined asvalid inputs. Thus, it is found that the operation configured with thetouch points is recognized.

Next, FIG. 7A to 7C illustrates that the user browses an image 700 of aperson on the information processing apparatus 100. In that case, theimage 700 is associated with the object ID=4 in the table in FIG. 5C,similarly to the captured image 500 in FIG. 5A.

FIG. 7A illustrates that the user's thumb has touched the input region102 when the user carries the information processing apparatus 100 withthe user's left hand and thus a touch point 701 has been obtained. Asillustrated in FIG. 8D, the obtaining unit 121 obtains the positionalcoordinates that are the x-coordinate (220 [dot]) and the y-coordinate(10 [dot]) and the ID=4 indicating the image 700 displayed at theposition with respect to the touch point having the ID 1 indicating thatthe touch point has been touched first. At that time, the touch point701 is determined as a valid input in the same process as in FIG. 6B.However, the process that the information processing apparatus 100performs is not associated with the operation in which the image 700 istouched on the operation screen. Thus, the output displayed image doesnot change.

Next, FIG. 7B illustrates that the user further touches the input region102 in order to change the image displayed in the input region 102. FIG.8E is an example of the information about the touch points obtained atthat time stored in the first storage unit 123. A touch point 702 havingthe ID 2 indicating that the touch point has been touched secondarily isassociated with the positional coordinates that are the x-coordinate(200 [dot]) and the y-coordinate (600 [dot]) and the ID=4 indicating theimage 700 displayed at the position.

Next, FIG. 7B illustrates that the touch point 702 that has been touchedwhen the user has further touched the input region 102 in order tochange the image displayed in the input region 102 is obtained (stepS201). As illustrated in FIG. 8E, the obtaining unit 121 obtains thepositional coordinates that are the x-coordinate (200 [dot]) and they-coordinate (600 [dot]) and the ID 4 indicating the image 700 displayedat the position with respect to the touch point 702 having the ID 2indicating that the touch point has been touched secondarily. At thattime, a plurality of touch points has been obtained (YES in step S202).Thus, the determination unit 122 determines whether the position of atleast one of the obtained touch points is included in the predeterminedrange 103. In the example, the touch point having the ID 1 is includedin the range having 20 [dot] in width from the outer edge in the Y-axisdirection (YES in step S203). Thus, the determination unit 122 obtainsthe touch point (ID=1) included in the predetermined range 103 (stepS204). Then, the determination unit 122 determines whether there is anobject associated with the image 700 having the ID 4 and displayed atthe position of the obtained touch point (step S403). When it isdetermined based on the table stored in the second storage unit 126 inFIG. 5C that there is not an object associated with the image 700 havingthe ID 4, the touch point 701 is determined as an invalid input (stepS404). Thus, the flag on the possibly invalid touch point associatedwith the touch point having the ID 1 becomes “TRUE” and the flag on thepossibly invalid touch point associated with the touch point having theID 2 becomes “FALSE” in FIG. 8E.

FIG. 7C illustrates that a flick operation (operation by a quick flip onthe screen) in a direction of arrow on the valid touch point 702 slidesthe currently-displayed image 700 and thus displays an image of alandscape that differs from the image 700 (step S207).

As described above, according to the present exemplary embodiment, atouch point in the range highly possibly touched by a finger forcarrying the apparatus in the region in which a touch-operation is to beperformed is determined as an input that is possibly not recognized.Then, it is determined whether to recognize the touch point based on thedisplay contents on the touch point determined as an input that ispossibly not recognized. This can efficiently select a touch point to beinvalid without a restriction on the contents allowed to be displayed onthe display screen, and thus can reduce the malfunctions of theinformation processing apparatus 100.

Second Embodiment

In the first exemplary embodiment, when a plurality of touch points isobtained, the touch points are processed based on whether the objectdisplayed on a touch point included in the predetermined range 103 isassociated with the object displayed on the other touch point,regardless of the order in which the touch points have been touched. Onthe other hand, in the second exemplary embodiment, the latest touchpoint among the obtained touch points (hereinafter, abbreviated to “thelatest touch point”) is determined as a valid input regardless of theposition because it is highly possible that the user has touched thelatest touch point in order to start a new operation. Note that thelatest touch point includes the latest obtaining time obtained when atouch has been started or the position of the touch has been moved.Among the touch points included in the predetermined range 103, thetouch point on which the object associated with the object displayed atthe latest touch point is displayed is determined as a valid input.

An information processing apparatus 100 according to the secondexemplary embodiment has the same appearance, hardware configuration,and functional configuration as in the first exemplary embodiment inFIG. 1A to 1C. However, a determination unit 122 in the second exemplaryembodiment determines the touch points except for the latest touch pointin the predetermined range 103 as possibly invalid inputs. When anobject associated with the object displayed at the latest touch point isdisplayed on the position of each touch point determined as a possiblyinvalid input, the touch point is determined as a valid input. When anobject associated with the object displayed at the latest touch point isnot displayed on the position of each touch point determined as apossibly invalid input, the touch point is determined as an invalidinput. The contents of the processes in the other functional units areperformed accordance with the first exemplary embodiment.

FIG. 9 is a flowchart for describing a process for recognizing a touchinput by the user in an exemplary variation 1. A process having the samecontents as in the first exemplary embodiment is performed in stepshaving the same numbers as in FIG. 2. Thus, the detailed descriptions ofthe overlapped contents will be omitted. The different points from thefirst exemplary embodiment will mainly be described.

In the second exemplary embodiment, the obtaining unit 121 first obtainsthe information about a touch point to the input region 102 in stepS901. In the present exemplary embodiment, the obtained information isprocessed in accordance with the flowchart in FIG. 10 to be describedbelow.

In the flowchart in FIG. 10, a process having the same contents as inthe first exemplary embodiment is performed in steps having the samenumbers as in FIG. 3. Thus, the detailed descriptions of the overlappedcontents will be omitted. The different points from the first exemplaryembodiment will mainly be described.

In the second exemplary embodiment, once the obtaining unit 121 hascompleted updating the information about the touch point having the sameID as the obtained touch point in the information stored in a firststorage unit 123 in step S304, the process goes to step S1001.

The obtaining unit 121 determines in step S1001 whether the obtainedtouch point has moved from the previously obtained position. In thepresent exemplary embodiment, when updating the information about thetouch point in step S304, the obtaining unit 121 temporarily stores theinformation indicating whether the positional information is identicalbefore and after the update so as to use the information for thedetermination in step S1001. When it is determined that the obtainedtouch point has moved (YES in step S1001), the process goes to stepS1002. On the other hand, when it is determined that the obtained touchpoint has not moved (step S1002), the process goes to step S305.

In the second exemplary embodiment, also when the obtaining unit 121 hascompleted newly adding the information of a touch point to theinformation stored in the first storage unit 123 in step S303, theprocess goes to step S1002.

In step S1002, the obtaining unit 121 updates the information indicatingthat the obtained touch point is the latest touch point. In the presentexemplary embodiment, a value “TRUE” of a flag on the latest touch pointis stored and associated with the ID of the touch point having thelatest obtaining time as the information indicating the touch point isthe latest touch point in the information about the touch points storedin the first storage unit 123. The touch point to be associated with thevalue “TRUE” of the flag on the latest touch point is updated in stepS1002. Then, the process goes to step S305.

Similarly to the first exemplary embodiment, the ID of the objectdisplayed on the position of the obtained touch point is specified andstored in the first storage unit 123 in step S305. Then, the processreturns to the process for recognizing a touch input (FIG. 2).

In the second exemplary embodiment, when the determination unit 122determines in step S202 that the obtaining unit 121 has obtained aplurality or touch points (YES in step S202), the process goes to stepS902.

The determination unit 122 determines in step S902 whether the positionof a touch point except for the latest touch point is included in thepredetermined range 103. In the present exemplary embodiment, it isdetermined with reference to the information stored in the first storageunit 123 whether the positional information of the touch pointassociated with the flag on the latest touch point that is not “TRUE” isincluded in the predetermined range 103. When there is the touch pointincluded in the predetermined range 103, it is determined that theposition of a touch point except for the latest touch point is includedin the predetermined range 103 (YES in step S902). Then, the processgoes to step S903.

In step S903, from among the touch points except for the latest touchpoint, the determination unit 122 specifies the touch point included inthe predetermined range as a touch point determined as a possiblyinvalid input to link the value “TRUE” of the flag on the possiblyinvalid touch point to the ID of the included touch point and store theflag.

In step S904, a determination process based the object displayed on theposition of a touch point is performed in accordance with the flowchartin FIG. 11.

In the flowchart in FIG. 11, the determination unit 122 first specifiesthe object displayed on the position of the latest touch point in stepS1101. The determination unit 122 refers to the information stored inthe first storage unit 123 in order to specify the displayed objectassociated with the touch point associated with the flag on the latesttouch point that is “TRUE” and obtain the ID of the displayed object.

Next, the determination unit 122 determines in step S1102 whether thereis the other displayed object associated with the object specified instep S1101. In the present exemplary embodiment, it is determined withreference to the information stored in a second storage unit 126 whetherthe ID of the other displayed object is stored as the associationinformation in the object having the obtained ID. When it is determinedthat there is the other displayed object associated with the specifiedobject (YES in step S1102), the ID of the other displayed object isobtained. Then, the process goes to step S1103. On the other hand, whenit is determined that there is not the other displayed object associatedwith the specified object (NO in step S1102), the process goes back tothe flowchart in FIG. 9.

The determination unit 122 determines in step S1103 whether the objectassociated with the specified object is displayed at the position of thetouch point included in the predetermined range. In the presentexemplary embodiment, it is determined that the object associated withthe specified object is displayed at the position of the touch pointincluded in the predetermined range when the ID of the displayed objectobtained in step S1102 is included in the information stored in thefirst storage unit 123. When it is determined that the object associatedwith the specified object is displayed at the position of the touchpoint included in the predetermined range (YES in step S1103), theprocess goes to step S1104. On the other hand, it is determined that theobject associated with the specified object is not displayed at theposition of the touch point included in the predetermined range (NO instep S1103), the process goes back to the flowchart in FIG. 9.

In step S1104, the determination unit 122 specifies at least a touchpoint on which the object associated with the specified object isdisplayed. In the present exemplary embodiment, the ID of at least atouch point associated with the ID of the object obtained in step S1102is obtained with reference to the information stored in the firststorage unit 123.

The determination unit 122 determines at least a specified touch pointas a valid input in step S1105. In other words, the determination unit122 eliminates the touch point from the touch points determined aspossibly invalid inputs. Thus, the value of the flag on the possiblyinvalid touch point associated with the obtained ID is updated as“FALSE”. Then, the process returns to the flowchart in FIG. 9.

Note that the description of the following process in and after stepS206 will be omitted because the process is performed in the same manneras the first exemplary embodiment.

Hereinafter, an example in which the user operates the informationprocessing apparatus 100 according to the second exemplary embodimentwill be described in detail with reference to FIGS. 12A to 12E, 13A to13D, and 14A to 14D.

FIG. 12 is an example of the zoom operation of the camera function inthe information processing apparatus 100. The example is the same as thedescription using FIGS. 5 and 6 in the first exemplary embodiment. Inthat case, the second storage unit 126 similarly stores the tableillustrated in FIG. 5C. The table stores the IDs for identifying thedisplayed objects and the association information for associating theobject to the other object. The state of the operation illustrated inFIG. 12A corresponds to the state in FIG. 6B. The state of the operationillustrated in FIG. 12A corresponds to the state in FIG. 6C. FIGS. 12Cto 12E correspond to FIGS. 8A to 8C.

FIG. 12A illustrates that the user has touched an object 501 displayedin an input region 102 and thus a touch point 1201 has been obtained(step S901). As illustrated in FIG. 12C, the obtaining unit 121 obtainsthe positional coordinates that are the x-coordinate (380 [dot]) and they-coordinate (10 [dot]) and an ID 1 indicating the object 501 displayedat the position with respect to the touch point that has the ID 1 andhas been touched first. The flag on the latest touch point that is“TRUE” is associated as the information indicating that the touch pointis the latest touch point at that time to the touch point having the ID1 (step S1002). At that time, a plurality of touch points have not beenobtained (NO in step S202), and the obtained touch point has not alreadybeen determined as invalid (NO in step S208). Thus, the operation withthe touch point 504 is recognized (step S206). Thus, as illustrated inFIG. 6C, the object 505 that is the zoom adjustment bar is displayed asthe output of the operation result (step S207).

Next, FIG. 12B illustrates that the user has newly touched the object505 and thus a touch point 1202 has been obtained (step S901). Asillustrated in FIG. 12D, the obtaining unit 121 obtains the positionalcoordinates that are the x-coordinate (80 [dot]) and the y-coordinate(620 [dot]) and an ID 1-1 indicating the object 505 displayed at theposition with respect to the touch point that has the ID 2 and has beentouched secondarily. The flag on the latest touch point that is “TRUE”is associated as the information indicating that the touch point is thelatest touch point at that time to the touch point having the ID 2 andthe value of the flag on the latest touch point associated with thetouch point having the ID 1 is updated as “FALSE” (step S1002). At thattime, a plurality of touch points has been obtained (YES in step S202).Thus, the determination unit 122 determines whether the position of thetouch point except for the latest touch point and having the ID 1 isincluded in the predetermined range 103. In the example, Both of thepositional coordinates of the touch point 1201 having the ID 1 areincluded in the range having 20 [dot] in width from the outer edge inthe Y-axis direction (YES in step S902). Thus, the determination unit122 links the flag on the possibly invalid touch point that is “TRUE” tothe touch point (ID=1) included in the predetermined range 103 andstores the flag (step S903). Next, the ID 1-1 is specified as the ID ofthe object displayed at the latest touch point 1201 (step S1101).Further, the object 501 (ID=1) associated with the object having the ID1-1 is specified with reference to the information stored in the secondstorage unit 126 and illustrated in FIG. 5C (YES in step S1102). In thatcase, the value 1 indicating the object 501 is stored at the portion forstoring the ID of the displayed object in the table in FIG. 12D that isthe information stored in the first storage unit 123 (YES in stepS1103). Based on the table in FIG. 12D, the touch point is specified asthe touch point 1202 (ID=1) (step S1104) and the touch point 1202 isdetermined as a valid input. As illustrated in FIG. 12E, the value ofthe flag on the possibly invalid touch point associated with the touchpoint having the ID 1 is updated as “FALSE”. Thus, both inputs of thetouch point 1201 and the touch point 1202 are recognized (step S206),similarly to the first exemplary embodiment described in FIG. 6.

FIGS. 13A to 13D illustrate an exemplary scroll operation of the browserin the information processing apparatus 100. FIGS. 14A to 14D illustrateexamples of the information about the scroll operation described hereinstored in the first storage unit 123 and the second storage unit 126.

First, FIG. 13A illustrates an exemplary state of the user interfacedisplayed on the information processing apparatus 100. Herein, an image1300 displaying a WEB page including text information and a scroll bar1301 are displayed as an example in the input region 102. The scroll bar1301 is a component included in the user interface on the informationprocessing apparatus 100 and plays a role for changing a part of the WEBpage displayed by the browser by designating a position relative to theentire length of the WEB page. A vertical flick operation on the screen1300 can also change a part displayed in the input region 102 on the WEBpage. FIG. 14A illustrates an exemplary table of the information storedin the second storage unit 126. The table stores the ID for identifyingthe displayed objects and the association information for associatingthe object to the other object. In that case, the table stores theinformation about the object of the image 1300 that is the displayregion of the browser and that has the ID 1, and the information aboutthe object that is the scroll bar 1301 and that has the ID 2. The twoobjects are not associated with each other because being operated byindependent touch-operations.

FIG. 13B illustrates that the user's thumb has touched the input region102 when the user carries the information processing apparatus 100 withthe user's left hand and thus a touch point 701 has been obtained. Asillustrated in FIG. 14B, the obtaining unit 121 obtains the x-coordinate(10 [dot]) and the y-coordinate (320 [dot]) of the touch point havingthe ID 1 indicating that the touch point has been touched first, and theID 1 indicating the image 1300 that is the display region of the browserdisplayed at the position (step S901). At that time, the flag on thelatest touch point that is “TRUE” is associated as the informationindicating that the touch point is the latest touch point at that timeto the touch point having the ID 1 (step S1002). At that time, aplurality of touch points have not been obtained (NO in step S202), andthe obtained touch point has not already been determined as invalid (NOin step S208). Thus, the operation with the touch point 1302 isrecognized (step S206). However, the touch point 1302 has not beenmoved. Thus, the flick operation for a scroll is not recognized and thedisplayed contents have not changed (step S207).

Next, FIG. 13C illustrates that the user has newly touched the scrollbar 1301 and thus a touch point 1303 has been obtained (step S901). Asillustrated in FIG. 14C, the obtaining unit 121 obtains the positionalcoordinates that are the x-coordinate (470 [dot]) and the y-coordinate(100 [dot]) and the ID 2 indicating the scroll bar 1301 displayed at theposition with respect to the touch point that has the ID 2 and that hasbeen touched secondarily. The flag on the latest touch point that is“TRUE” is associated as the information indicating that the touch pointis the latest touch point at that time to the touch point having the ID2 and the value of the flag on the latest touch point associated withthe touch point having the ID 1 is updated as “FALSE” (step S1002). Atthat time, a plurality of touch points has been obtained (YES in stepS202). Thus, the determination unit 122 determines whether the positionof the touch point except for the latest touch point and having the ID 1is included in the predetermined range 103. In the example, the touchpoint having the ID 1 is included in the range having 20 [dot] in widthfrom the outer edge in the X-axis direction (YES in step S902). Thus,the determination unit 122 links the flag on the possibly invalid touchpoint that is “TRUE” to the touch point (ID=1) included in thepredetermined range 103 and stores the flag (step S903). Next, the ID 2is specified as the ID of the object displayed at the latest touch point1302 (step S1101). Further, it is determined that there is not an objectassociated with the object having the ID 2 with reference to theinformation stored in the second storage unit 126 and illustrated inFIG. 14A (NO in step S1102). Thus, the value “TRUE” of the flag on thepossibly invalid touch point associated with the touch point 1302 (ID=1)and the value “FALSE” of the flag on the possibly invalid touch pointassociated with the touch point 1303 (ID=2) are maintained. The input ofthe touch point 1303 is recognized as the operation for designating thepoint of the scroll bar 1301 (step S206). Thus, the contents of theimage 1300 partially change (step S207).

FIG. 13D illustrates that the touch point 1303 is determined as a validinput (step S206) and thus the contents displayed by the browser arescrolled and the image 1300 changes. In that case, moving the touchpoint 1303 having the ID 2 in the positive direction of the Y-axisdirection scrolls the WEB page upward. Thus, the displayed part isdisplayed with moving (step S207). FIG. 14D illustrates an example ofthe information stored in the first storage unit 123 at that time. It isfound that the operation with the touch point 1303 (ID=2) associatedwith the flag on the possibly invalid touch point that is “FALSE” isrecognized.

Similarly to the scroll operation of the browser described in FIG. 13A,the scroll bar is generally displayed near the outer edge of the inputregion 102 when the scroll bar is displayed on the screen. Such a scrollbar is often implemented. In addition to the scroll bar, an object forthe user interface is often displayed near the outer edge of the inputregion in order not to interrupt the information displayed at the centerof the screen. Thus, in a control method in which the touch points nearthe outer edge of the screen are uniformly determined as invalid inputs,or in a control method in which the touch points near the outer edgethat have moved are determined as valid inputs, a touch operation by theuser is sometimes not able to accurately be recognized in the case asthe example illustrated in FIG. 13C. Further, such methods sometimescause a restriction on the position to display a user interface. Inlight of the foregoing, the timing when an operation is started isconsidered when a process is performed in the present exemplaryembodiment. Thus, even a touch-operation near the outer edge of theinput region 102 can be recognized without a restriction on thedisplayed contents.

As described above, in the present exemplary embodiment, the latestobtained touch point in a plurality of touch points obtained bysimultaneously touching the input region 102 is determined as a validinput regardless of the position. The latest touch point is included inthe predetermined range 103. Thus, from among the touch pointsdetermined as possibly invalid inputs, the touch point at the positionon which an object associated with the object displayed at the positionof the latest touch point is displayed is determined as a valid input.The reason why the determination is made in such a manner is that it ishighly possible that the latest touch point is touched because the userintends to start a new touch operation and similarly that it is highlypossible that a touch point at the position on which an objectassociated with the touch point is displayed is touched because thetouch point is associated with the operation to be started. As describedabove, narrowing the touch points determined as possibly invalid inputsusing the order in which the touch points have been touched can reducethe load on the process for determining the touch points as invalid oras valid.

Another Embodiment

The present invention can be implemented by performing the followingprocess. In other words, software (a program) configured to implementthe functions in the above-mentioned exemplary embodiments is providedto a system or an apparatus through a network or various recording mediaand then the computer (for example, a CPU or an MPU) in the system or inthe apparatus reads and executes the program.

Effect of the Invention

In light of the above-mentioned problems, the present invention canimprove the operability of the user interface displayed in apredetermined range on a touch panel display when a touch point in thepredetermined range is selectively determined as an invalid input.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all such modifications and equivalent structures andfunctions.

This application claims the benefit of Japanese Patent Application No.2012-287245, filed Dec. 28, 2012, which is hereby incorporated byreference herein in its entirety.

What is claimed is:
 1. An information processing apparatus configured torecognize a touch operation, the information processing apparatuscomprising: an obtaining unit configured to obtain a plurality of touchpositions touched on a display screen; a specifying unit configured tospecify an object displayed at a position corresponding to each of thetouch positions obtained by the obtaining unit on the display screenwhen at least one of the touch positions obtained by the obtaining unitis included in a predetermined range on the display screen; and adetermination unit configured to determine, among the touch positionsobtained by the obtaining unit, a touch position included in thepredetermined range as an invalid input for a touch operation to theinformation processing apparatus when the object specified by thespecifying unit is not a plurality of objects associated with eachother.
 2. The information processing apparatus according to claim 1,wherein the determination unit determines a touch position included inthe predetermined range as a possibly invalid input from among the touchpositions obtained by the obtaining unit, and eliminates, from thepossibly invalid input, a touch position at a position on which one ofthe objects associated with each other is displayed among the objectsspecified by the specifying unit so as to make the determination.
 3. Theinformation processing apparatus according to claim 1, furthercomprising: a storage unit configured to store information indicating alink between one or more objects displayed on a display screen, whereinthe determination unit makes the determination based on the informationstored in the storage unit.
 4. The information processing apparatusaccording to claim 1, wherein the predetermined range is a range from anouter edge of a target region of the touch operation to a predetermineddistance away from the outer edge.
 5. The information processingapparatus according to claim 1, wherein the determination unitdetermines a touch position that is not a latest touch position amongthe obtained touch positions as a touch position to be determined in thedetermination.
 6. The information processing apparatus according toclaim 1, wherein, when determining each of the touch positions obtainedby the obtaining unit as a valid input or as an invalid input hasreduced the touch positions to a touch position, the determination unitmaintains a determination result to the touch position.
 7. Acomputer-readable recording medium configured to store a program that acomputer reads and executes such that the computer operates as theinformation processing apparatus according to claim
 1. 8. A method forcontrolling an information processing apparatus configured to recognizea touch operation, the method comprising: obtaining a plurality of touchpositions touched on a display screen; specifying an object displayed ata position corresponding to each of the obtained touch positions on thedisplay screen when at least one of the obtained touch positions isincluded in a predetermined range on the display screen; anddetermining, among the obtained touch positions, a touch positionincluded in the predetermined range as an invalid input for a touchoperation to the information processing apparatus when the specifiedobject is not a plurality of objects associated with each other.
 9. Themethod for controlling an information processing apparatus according toclaim 8, wherein, to make the determination, the determining includes:determining a touch position included in the predetermined range as apossibly invalid input from among the touch positions obtained by theobtaining; and eliminating, from the possibly invalid input, a touchposition at a position on which one of the objects associated with eachother is displayed among the objects specified by the specifying. 10.The method for controlling an information processing apparatus accordingto claim 8, further comprising: storing information indicating a linkbetween one or more objects displayed on a display screen, wherein thedetermining is based on the stored information.
 11. The method forcontrolling an information processing apparatus according to claim 8,wherein the predetermined range is a range from an outer edge of atarget region of the touch operation to a predetermined distance awayfrom the outer edge.
 12. The method for controlling an informationprocessing apparatus according to claim 8, Wherein, in the determining,a touch position that is not a latest touch position among the obtainedtouch positions is determined as a touch position to be determined inthe determining.
 13. The method for controlling an informationprocessing apparatus according to claim 8, wherein, when determiningeach of the touch positions obtained by the obtaining as a valid inputor as an invalid input has reduced the touch positions to a touchposition, the determining includes maintaining a determination result tothe touch position.
 14. An information processing apparatus comprising:an obtaining unit configured to obtain a plurality of pointed positionspointed by a user on a display screen; a specifying unit configured tospecify an object displayed at a position corresponding to each of thepointed positions obtained by the obtaining unit on the display screenwhen at least one of the pointed positions obtained by the obtainingunit is in a predetermined range on the display screen; and adetermination unit configured to determine, among the pointed positionsobtained by the obtaining unit, an pointed position included in thepredetermined range as an invalid input for an operation to theinformation processing apparatus when the object specified by thespecifying unit is not a plurality of objects associated with eachother.
 15. The information processing apparatus according to claim 14,wherein the obtaining unit obtains at least one of a touch positiontouched by the user's finger and a proximate position to which theuser's finger is close on the display screen as the pointed position.